Flow control is required for Asynchronous Transfer Mode ("ATM") networks which provide best effort type service such as Available Bit Rate ("ABR") service. An ABR connection competes for shared buffers with a number of other connections, and consequently no single ABR connection is typically guaranteed a particular amount of buffer space. It is therefore important to have knowledge of how many buffers are available in order to control flow such that the buffers do not overflow. If the number of cells transmitted exceeds the number of available buffers, some cells will be lost.
It is known to reduce the possibility of cell loss by providing feedback from a receiving switch to a transmitting switch to indicate how many buffers are available in the receiving switch. In such a system the delay between the time at which the transmitter sends a cell and a complementary feedback message can be received by the transmitter, i.e., the round trip time ("RTT") between transmitter and receiver, becomes a factor in determining minimum buffer size for allowing efficient utilization of network trunks. More particularly, for a link of N flows and bandwidth B, the buffer may be sized to be the product of N, B and RTT, which is large enough for a "worst case scenario."
Such buffer sizing techniques become problematic, however, in the case of Wide Area Networks ("WANs"). Because of the larger physical distances covered by WANs, RTT becomes relatively large in WAN implementations, e.g., approximately 50 msec for the case of eastern United States and western United States. The buffer sizing using the "worst case scenario" dictates a buffer size (N.times.B.times.RTT) which is impractically large for such values of RTT.
The worst case scenario buffer size can be reduced by forwarding information from the receiver to the transmitter regarding availability and usage of buffers, and permitting transmissions from the transmitter to the receiver based upon such feedback information. However, in such a system in which transmissions are permitted based solely upon such feedback information from the receiver, undesirable oscillations in buffer utilization may occur due to the latency associated with the feedback information. Additionally, such latency can result in overallocation of buffers or underallocation of buffers.